import pygame, sys
from pygame.locals import *
from beign import *
from Mapa import Mapa
class Principal:
  def __init__(self):
    self.juego = Mapa()
    self.tamX, self.tamY = self.juego.regresaDimension()
    self.tamX = self.tamX * 32
    self.tamY = self.tamY * 32
    self.velocidad = 32
    pygame.init()
    self.ventana = pygame.display.set_mode((self.tamX, self.tamY))
    self.posMX, self.posMY = (0,0)
    self.casIX, self.casIY =(1,1)	# Casilla actual
    self.sprite = human(1,1)
    self.posPX, self.posPY = (self.casIX*32,self.casIY*32)
    #self.sprite = pygame.image.load("Imagenes/Chocobo1.png")
    self.imagenes = self.juego.retornaListaImagenes()
   # pygame.mixer.music.load("Chocobo.mp3")
    #pygame.mixer.music.play()
    while True:
      self.juego.dibujarAlrededores(self.casIX,self.casIY )
      self.juego.ImprimirTerreno(self.casIX, self.casIY);
      self.actualizar()
      #self.quitarPasillos()
      #pygame.time.delay(1000)
      print "X = ", self.casIX, "Y = ", self.casIY
      print self.juego.verificaAlrededores(self.casIX, self.casIY)
      self.juego.ImprimirTerreno(self.casIX, self.casIY);
      for evento in pygame.event.get():
	if evento.type == QUIT:
	  pygame.quit()
	  sys.exit()
	if evento.type == pygame.KEYDOWN:
	  if evento.key == K_UP:
	    self.moverArriba()
	  if evento.key == K_DOWN:
	    self.moverAbajo()
	  if evento.key == K_LEFT:
	    self.moverIzquierda()
	  if evento.key == K_RIGHT:
	    self.moverDerecha()

      pygame.display.update()
  def actualizar(self):
    self.imagenes = self.juego.retornaListaImagenes()
    self.posMY = 0
    for lista in self.imagenes:
      self.posMX = 0
      for imagen in lista:
	self.ventana.blit(imagen, (self.posMX, self.posMY))
	if self.juego.revisaBandera(self.posMX/32,self.posMY/32):
	  self.ventana.blit(self.juego.regresarBandera(self.posMX/32, self.posMY/32), (self.posMX, self.posMY))
	if self.juego.regresarDesicionCor(self.posMX/32, self.posMY/32):
	  self.ventana.blit(self.juego.regresaDesicionIMG(self.posMX/32, self.posMY/32), (self.posMX, self.posMY))
	self.posMX = self.posMX + 32
      self.posMY = self.posMY + 32
      #self.ventana.blit(self.sprite, (self.posPX, self.posPY))
  def moverAbajo(self):
    if self.juego.revisaAccesoPorCoordenada(self.casIX,(self.casIY + 1)):
      if self.posPY + 32 < self.tamY:
	self.posPY = self.posPY + self.velocidad
	self.casIY = self.casIY + 1
	#self.sprite = pygame.image.load("Imagenes/Chocobo1.png")
  def moverArriba(self):
    if self.juego.revisaAccesoPorCoordenada(self.casIX,(self.casIY - 1)):
      if self.posPY > 0:
	self.posPY = self.posPY - self.velocidad
	self.casIY = self.casIY - 1
	#self.sprite = pygame.image.load("Imagenes/Chocobo4.png")
  def moverDerecha(self):
    if self.juego.revisaAccesoPorCoordenada((self.casIX + 1),self.casIY):
      if self.posPX + 32 < self.tamX:
	self.posPX = self.posPX + self.velocidad
	self.casIX = self.casIX + 1
	#self.sprite = pygame.image.load("Imagenes/Chocobo2.png")
  def moverIzquierda(self):
    if self.juego.revisaAccesoPorCoordenada((self.casIX - 1),self.casIY):
      if self.posPX > 0:
	self.posPX = self.posPX - self.velocidad
	self.casIX = self.casIX - 1
	#self.sprite = pygame.image.load("Imagenes/Chocobo3.png")
  def quitarPasillos(self):
    dirLibre, direccion = self.juego.verificaAlrededores(self.casIX, self.casIY)
    if dirLibre == 1:
      if direccion == "arriba":
	self.moverArriba()
      if direccion == "abajo":
	self.moverAbajo()
      if direccion == "derecha":
	self.moverDerecha()
      if direccion == "izquierda":
	self.moverIzquierda()
    else :
      self.juego.marcarDes(self.casIX, self.casIY)
  def colocarBandera(self):
    self.ventana.blit(self.juego.regresarBandera(self.casIX, self.casIY), (self.casIX*32, self.casIY*32))
inicio = Principal()